One might say that an explosion has rocked the world of information in the form of an ever-increasing amount of recorded and searchable information. To efficiently search for specific information within this ever-increasing amount of information, information retrieval systems have been developed.
Information retrieval systems ("IR systems") are systems for finding, organizing, and delivering information. A computerized IR system typically responds to data inquiries by routing messages and files between a user interface and a search engine for a database in order to perform a search of the database for desired information.
The time it takes for the IR system to service a data inquiry is usually referred to as the IR system's response time. However, as the IR system becomes more heavily used and as the IR system searches larger and larger databases, response time within the IR system may begin to diminish. Some searches within the IR system may take an undesirably long amount of time to retrieve the desired information. Long response times are very undesirable for the IR system because use of the IR system may seem to be cumbersome and slow. Users of such slow IR systems may then become frustrated and disenchanted with the particular IR system.
For example, in today's world of vast amounts of online digital information, a single database may easily be over 2 Gigabytes. Such large databases may exceed the capacity of a typical hard disk drive used in a conventional computer. Other depositories of information are maintained in huge databases using multiple high capacity memory storage units, such as CD-ROMs or DVD drives. Sifting and searching through such databases may involved loading and unloading multiple disks in order to find the desired information. The time it takes to load and unload multiple disks shows up as an undesirably increased response time.
One way in which to reduce the response time is to maintain the entire database within quickly accessible memory, such as random access memory (RAM). This solution may help to reduce response times because RAM access times are typically faster than most memory storage unit access times. For example, RAM has typical access times of 70 nanoseconds while fast hard disk drives may have typical access times of just less than 10 milliseconds. Thus, copying the entire database into a more quickly accessible form of computer-readable memory can reduce the time an IR system takes to respond to a data inquiry with the desired information.
However, the use of quickly accessible memory to store an entire database can be problematic because the use may not be economically nor physically feasible to accomplish. If the database is very large, the cost associated with outfitting a computer with the appropriate amount of RAM can become astronomical. The cost associated with the RAM may easily eclipse the cost of the rest of the computer.
Additionally, the design of many conventional computers typically includes a limitation on the amount of RAM recognized by the computer system. The ability to recognize only a limited amount of RAM is usually because of the limited addressable memory space within the computer. The addressable memory space is limited because of the width of the address bus within the hardware architecture of the computer. If a database is larger than the amount of addressable RAM, only a portion of the database can be loaded at a time. If only a portion of the database can be loaded at a time, the database is usually searched by swapping in and out other portions of the database to RAM. An IR system using such a computer system that must perform time-consuming swapping operations may be plagued by slow response time problems when responding to a data inquiry.
Even if the computer can support enough memory, the creation of a copy of the database within quickly accessible memory, such as RAM, still may not resolve the response time issue to a user's satisfaction. The use of a copy of the database within quickly accessible memory still requires time spent performing many broad, although quick, searches through a database to find the right information. Accessing the database while the database is resident in RAM is analogous to performing a faster search for the proverbial needle within a haystack. While the searches may proceed quicker, the search for the needle (the desired data) may still take time. This is because the size of the haystack (the size of the database) may still be overwhelming and because the needle (the desired data) could be anywhere within the haystack (the database). Thus, the response time for a search may still rise to an undesirable level for very large databases.
In summary, there is a need for a general solution for quickly performing a search for information represented within a database that (1) maintains a desirable level of response time for users of the IR system, (2) saves memory space within quickly accessible memory, (3) uses a memory map to provide the information without having to incur the response time of actually searching the database in order to provide the information, and (4) focuses any search of the database to a narrow region in order to enhance the response time involved with the search.